iT邦幫忙

2023 iThome 鐵人賽

DAY 28
1

續上一篇機器學習 挑戰 - Day 6

我想要研究一下可否加入多項其他變數來預測未來價格。

https://ithelp.ithome.com.tw/upload/images/20231012/20162091ez8GsKbYIA.png

在尋找資料時,意外發現有Pytrend這個API可導入。
什麼是 Pytrends?
Pytrends 是一個非官方的 Google Trends API,它提供不同的方法來下載 Google Trends 的熱門結果報告。這個 Python 套件可以幫助你自動化數據擷取過程,並在短時間內獲得結果。

#Setup and Import Required Libraries
import pandas as pd
from pytrends.request import TrendReq

pytrends = TrendReq(hl='en-US', tz=360)

#hl is the language, tz is for timezone

# build your list of keywords you want to search in Google Trends 
#https://pypi.org/project/pytrends/

kw_list = ["Bitcoin", "BTC"] # list of keywords to get data 
pytrends.build_payload(kw_list, cat=0, timeframe='now 7-d') #pull data from 7 days from today to now

我用了兩個關鍵字:Bitcoin 與 BTC。 我們看一下這兩個關鍵字在網路上的人氣。
https://ithelp.ithome.com.tw/upload/images/20231013/20162091csgtx7Gv13.png

看似“Bitcoin“的關鍵字比較多人用來搜尋。
pytrend還有一個有用的function:related_queries()。
https://ithelp.ithome.com.tw/upload/images/20231013/20162091E1reuxozSQ.png

這個套件非常強大,因為它可以顯示與提問中的關鍵詞「Bitcoin」相關的其他查詢。這可以幫助你更好地理解有關一個主題的趨勢。

我們把pytrend的指數與BTC-USD的Closing Price合成在一起,放在圖表中研究一下。

https://ithelp.ithome.com.tw/upload/images/20231013/20162091NUX5PBN75r.png

從yfinance抓的成交量跟收盤價(1wk at 1hour interval),可以看到有一些時間點,交易數量是零,不知道是否是數據有差錯。在交易量最高點處,似乎跟收盤價的最低/最高點有點關聯性。

https://ithelp.ithome.com.tw/upload/images/20231013/20162091XBxxatqpaU.png

在以上的圖,Bitcoin是從PyTrend取的數據,也是從Google Trend(Google趨勢)的Popularity Index(熱度指數) 下載的。

你可以看到Popularity Index起伏很平穩,跟收盤價的波動也不太相輔。

讓我們使用散點圖來驗證成交量(Volume)和收盤價(Close)之間是否存在因果關係。
https://ithelp.ithome.com.tw/upload/images/20231013/20162091Xqf2eekaOc.png

你可以看以上散點圖顯示成交量和收盤價之間並無相關性。

我們也順便看看Bitcoin 熱度(Bitcoin)和收盤價(Close)之間是否存在因果關係。
https://ithelp.ithome.com.tw/upload/images/20231013/201620918uf8yQW2G3.png
遺憾的是,以上散點圖也顯示它們之間並無相關性。

這代表就算我把以上兩項變數加上,也不會讓我現有機器學習模型更准確。

在下一章,我們可以探索一下scikit-learn 。


Ref:

https://medium.com/@ben.g.ballard/using-google-trends-api-with-python-7ddbe0f7e18e#:~:text=First%2C%20install%20PyTrends%20and%20Connect,pytrends%20to%20initialize%20the%20connection.
https://hackernoon.com/how-to-use-google-trends-api-with-python


對 dbt 或 data 有興趣?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加
Ref:

https://levelup.gitconnected.com/20-pandas-functions-for-80-of-your-data-science-tasks-b610c8bfe63c


上一篇
機器學習 挑戰 - Day 6
下一篇
機器學習 挑戰 - Day 8
系列文
資料分析的硬體以及軟體學習以及成長心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言